home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tiger Disk 53
/
Tiger_Disk_053_1998-08_Tiger-Crew-Disk_de_Side_B.d64
/
petscii > td.src
< prev
next >
Wrap
Text File
|
2023-02-26
|
7KB
|
234 lines
\ba $0801
\on "petscii > td.obj,p,w",s
;--------------------------------------
;version vom 28.03.1998 by willcox
;modifiziert von: am:
;--------------------------------------
;entstanden als kursbegleitendes
;beispielprogramm.
;--------------------------------------
;dieses programm liest ein petscii-file
;(seq),fuellt die zeilen mit spaces auf
;und konvertiert dies in das notemaker-
;format,inclusive wandlung aller gross-
;buchstaben zu zeichensatz 1 (klein).
;--------------------------------------
;aenderungsvorschlaege:
;- abfrage des fehlerkanals
; (file not found,write protect on,..)
;- unterdruecken von steuerzeichen
; (farbe, cursor) beim einlesen.
;--------------------------------------
;bei aenderungen dieses programm zwecks
;veroeffentlichung schicken an:
;
;tiger disk
;feldstr. 17
;36391 sinntal
;--------------------------------------
\la st=144
\la clrscr=$e544
\la bsout=$ffd2
\la basin=$ffcf
\la strout=$ab1e
\la parama=$ffba
\la paramb=$ffbd
\la chkout=$ffc9
\la clrch=$ffcc
\la chkin=$ffc6
\la open=$ffc0
\la close=$ffc3
;-------------1998 sys2061-------------
\by $0b,8,$ce,7,$9e,50,48,54,49,0,0,0
;--------------------------------------
anfang:
lda #0 ;bildschirm-
sta $d020 ;rahmenfarbe
sta $d021 ;=schwarz.
lda #15 ;zeichenfarbe
sta 646 ;=grau.
lda #<string1 ;text -
ldy #>string1 ;ausgeben.
jsr strout
lda #<lesename ;subroutine
ldx #>lesename ;fuer eingabe
jsr nimmname ;filename.
bcs anfang ;name>16=error
tya ;laenge auf -
clc ;+",s,r" -
adc #4 ;erweitern.
sta laenge1
tay ;aendere von-
dey ;1 auf von 0.
ldx #3
artloop1:
lda sr,x ;",s,r" an -
sta lesename,y ;namen haengen
dey
dex
bpl artloop1
lda #<string2 ;text -
ldy #>string2 ;ausgeben.
jsr strout
lda #<schreibname;eingabe des
ldx#>schreibname;outputnamens
jsr nimmname
bcs anfang ;mehr als 16z
tya ;laenge=laenge
clc ;plus ",p,w"
adc #4
sta laenge2
tay
dey
ldx #3
artloop2:
lda pw,x ;",p,w" -
sta schreibname,y
dey ;an namen -
dex ;haengen.
bpl artloop2
lda #1 ;filenummer 1
ldx #8 ;drive 8
ldy #2 ;sekundaeradr.
jsr parama ;uebergeben.
lda laenge1 ;laenge name1
ldx #<lesename ;lo-byte name1
ldy #>lesename ;hi-byte name1
jsr paramb ;uebergeben.
jsr open ;open lesefile
lda #2 ;filenummer 2
ldx #8 ;drive 8
ldy #3 ;sekundaeradr.
jsr parama ;uebergeben
lda laenge2 ;laenge name2
ldx #<schreibname
ldy #>schreibname
jsr paramb ;uebergeben
jsr open ;op.writefile
ldx #2 ;schreibfile-
jsr chkout ;auf ausgabe.
lda #32 ;ladeadresse-
jsr bsout ;simulieren.
jsr bsout
jsr clrch ;input reset.
loop0:
lda #163 ;bildschirm -
sta $d011 ;ausschalten.
start:
jsr clrscr ;bild loeschen
ldx #1 ;readfile auf-
jsr chkin ;eingabe.
ldx #0
loop1:
lda st ;status -
sta $02 ;merken.
bne ende ;<> 0 = ende
jsr basin ;lese 1 zeichn
inc $d020 ;rahmenfarbe
and #$7f ;aus A mach a
cmp #13 ;return?
beq ende ;=zeilenende.
jsr bsout ;print auf -
inx ;bildschirm.
cpx #80 ;80 zeichen -
; ;und immer -
; ;noch kein -
; ;return?
bne loop1
ende:
lda #40 ;setze counter
cpx #41 ;wieviel -
; ;zeichen -
; ;wurden -
; ;geprintet?
; ;mehr als 40?
bcc modify
lda #80 ;dann setze -
; ;counter auf-
; ;80.
modify:
sta aendere+1 ;selbstmodifi-
; ;kation.
jsr clrch ;input reset
ldx #2 ;writefile -
jsr chkout ;auf ausgabe.
ldx #0 ;zaehler = 0
loop2:
lda $0400,x ;lese screen.
and #63 ;wandle alles
; ;in zeichen-
; ;satz 1
jsr bsout ;schreibe in-
; ;file 2.
inc $d020 ;rahmenfarbe.
inx
aendere:
cpx #40 ;40 oder 80 -
; ;je nach -
; ;selbstmodifi-
; ;kation.
; ;bedeutung:
; ;wurde zeile-
; ;schon kom-
; ;plett gelesen
; ;incl.spaces?
bcc loop2
jsr clrch ;input reset.
lda $02 ;lesestatus
beq start ;schon eof?
lda #1 ;close file 1
jsr close
lda #2 ;close file2
jsr close
lda #27 ;bildschirm an
sta $d011
lda #0 ;rahmenfarbe=
sta $d020 ;schwarz.
jmp anfang ;neubeginn.
;--------------------------------------
nimmname:
sta $22 ;pointer auf-
stx $23 ;filenamen.
ldy #0 ;zaehler = 0.
menu1:
jsr basin ;input tastat.
cmp #13 ;return?
beq menu2
sta ($22),y ;im ram merken
iny
bne menu1
menu2:
cpy #17 ;mehr als 16-
; ;zeichen ein-
; ;gegeben?
; ;dann carry=1
rts
;--------------------------------------
string1:
\by 147,142
\tx "convert petscii to notemaker"
\by 13
\tx "by willcox for tiger tisk"
\by 13
\tx "minimalprg als kursbeispiel!"
\by 13,13
\tx "sourcename (seq): "
\by 0
string2:
\by 13,13
\tx "targetname (prg): "
\by 0
;--------------------------------------
pw:
\tx ",p,w"
sr:
\tx ",s,r"
laenge1:
\by 0
laenge2:
\by 0
lesename:
\br 20,0
schreibname:
;--------------------------------------